Here we outline a workflow with algorithmic support in R for comparing our conceptual model to the existing literature corpus, the government policy documents and a qualitative assessment.

We apply this to systematically evaluate whether each component of our conceptual model is supported, refuted, missing from the literature and/or policy documents. We then synthesize this into a shorter, more justified and adjusted version of the model.

We build a semi-automated evidence synthesis framework that treats our documents like a team of virtual reviewers. The core idea is to define the core elements from your simple conceptual model (e.g. canteen regulation, staff training, food safety, nutrition education, etc.), search and summarize what each document says about each element, score the strength and direction of evidence per element, compare and synthesize to get a high-level view of agreement, gaps, and inconsistencies.

Decision framing

As a first step we framed the decision of implementing school meal policy. We determined our general understanding of the decision problem in the form of a simple causal model representing the important costs benefits and risks that policy will have at the school level.

Full conceptual Model
Full conceptual Model

Literure and policy review

we performed a review of policy and literature documents. Here we load the data resulting from the literature and policy review.

# Load .txt files
literature_text <- tolower(readLines("text_Review/Text_Lit_Review.txt"))

policy_text <- tolower(readLines("text_Review/Text_Policy_Review_Eng.txt"))

bib_policy <- read.bib("bib/school_meal_policy.bib")

bib_texts_policy <- tolower(sapply(bib_policy, function(x) {
  paste(
    x$title,
    x$abstract,
    if (!is.null(x$annote)) paste(x$annote, collapse = " ") else "",
    collapse = " "
  )
}))

# Load BibTeX literature entries as plain text
bib_literature <- read.bib("bib/school_meal_literature.bib")

# Load BibTeX literature entries as plain text
bib_texts_literature <- tolower(sapply(bib_literature, function(x) {
  paste(
    x$title,
    x$abstract,
    if (!is.null(x$annote)) paste(x$annote, collapse = " ") else "",
    collapse = " "
  )
}))

Algorithmic support

To compare our conceptual model to the existing literature, the government policy documents and a qualitative assessment we first the corpus search for key terms.

food_tech_training

Infrastructure, equipment, and capacity-building components needed for food preparation and delivery in schools.

food_tech_training = c(
  "kitchen equipment", "cooking equipment", "commercial kitchen", 
  "school meal preparation", "technical food support", 
  "canteen operations", "food service logistics", 
  "kitchen operations", "meal service infrastructure", 
  "food production capacity", "food storage infrastructure", 
  "kitchen staff training", "food preparation training", 
  "school catering system", "school meal delivery", 
  "bulk cooking systems", "school kitchen upgrade", 
  "food handling facility", "school feeding infrastructure", "trained and educated on proper nutrition"
)

teaching_resources

Time, personnel, and instructional capacity needed for teachers and staff to implement nutrition interventions.

teaching_resources = c(
  "teaching workload", "teacher time", "instructional time", 
  "curricular demands", "lesson planning constraints", 
  "staffing capacity", "teacher availability", 
  "instructional burden", "curriculum overcrowding", 
  "limited teaching time", "staffing shortage", 
  "time allocation", "teaching schedule", 
  "instructional capacity", "non-teaching responsibilities", 
  "classroom time pressure", "teacher deployment", 
  "resource constraints for instruction"
)

staff_skill

The pedagogical and technical competencies of school staff related to nutrition, health, and food safety.

staff_skill = c(
  "staff nutrition knowledge", "teacher nutrition competency", 
  "school health educators", "teacher skills", 
  "staff training", "training effectiveness", 
  "professional development for teachers", 
  "teacher capacity building", "staff development programs", 
  "food literacy training", "capacity development", 
  "in-service training", "teacher competence", 
  "educator readiness", "pedagogical support for nutrition", 
  "staff preparation", "training coverage", 
  "staff instructional skills", "training quality", 
  "nutrition educator training"
)

intervention_cost

Economic factors influencing the feasibility, sustainability, and scalability of school-based nutrition interventions, including direct costs and systemic financial constraints.

intervention_cost = c(
  "intervention cost", "program cost", "implementation cost", 
  "financial feasibility", "budget constraint", "school finance", 
  "economic barrier", "affordability", "funding shortfall", 
  "resource allocation", "cost-effectiveness", "cost-benefit", 
  "financial sustainability", "school budget", "budget limitation", 
  "fiscal capacity", "operational cost", "nutrition program funding", 
  "financial barrier", "economic feasibility", "budget planning", 
  "cost per child", "nutrition intervention expenses"
)

canteen_change

Policy-driven or structural reforms to the school food environment, particularly within canteen services, aimed at improving food quality, nutritional adequacy, and student access to healthy meals.

canteen_change = c(
  "canteen reform", "school meal change", "menu revision", 
  "canteen intervention", "food service reform", 
  "school food environment", "healthy food provision", 
  "nutrition-sensitive canteen", "school food policy", 
  "canteen nutrition standards", "meal plan reform", 
  "food service update", "school food regulation", 
  "canteen policy enforcement", "nutritional canteen shift", 
  "menu redesign", "food procurement reform", 
  "canteen-based intervention", "school food service management"
)

nutrition_lessons

Educational initiatives and curricular strategies that provide students with knowledge, skills, and attitudes related to nutrition, diet, and healthy lifestyle practices.

nutrition_lessons = c(
  "nutrition education", "health class", "food literacy lessons", 
  "nutrition curriculum", "classroom food education", 
  "school-based nutrition instruction", "dietary education", 
  "nutrition teaching materials", "health promotion teaching", 
  "lesson on healthy eating", "curriculum-integrated nutrition", 
  "food education", "nutrition behavior curriculum", 
  "classroom nutrition program", "healthy eating curriculum", 
  "nutrition awareness education", "school nutrition module", 
  "teacher-led nutrition instruction", "classroom wellness lesson"
)

food_ads

Advertising and commercial promotion of unhealthy foods in the school environment or within children’s media ecosystems that influence eating behaviors and preferences.

food_ads = c(
  "food marketing", "junk food advertising", "unhealthy food ads", 
  "child-targeted food marketing", "ads near school", 
  "commercial food promotion", "branded snack promotion", 
  "advertising to children", "point of sale marketing", 
  "school food advertising", "child-directed advertising", 
  "food and beverage marketing", "media food influence", 
  "food advertisements", "billboard marketing", 
  "TV food commercials", "digital food marketing", 
  "sugar-sweetened beverage marketing", "fast food advertising", 
  "packaging marketing to kids"
)

off_campus

The external food environment accessible to students outside of school grounds, including vendors, markets, and informal sources that often provide low-nutrient, energy-dense foods.

off_campus = c(
  "off-campus eating", "external food", "street food vendors", 
  "gate food", "junk food near school", "mobile food vendors", 
  "non-canteen food", "external food purchases", 
  "school gate vendors", "food from outside school", 
  "unregulated food sales", "open food access", 
  "snack carts near school", "neighborhood food environment", 
  "informal food sources", "out-of-school food access", 
  "off-premises food", "community vendors near school"
)

on_campus

Food consumption and dietary behaviors that occur within school premises, including those influenced by school meals, canteen offerings, and in-school food policies.

on_campus = c(
  "school food consumption", "on-site meal intake", 
  "canteen food intake", "in-school dietary habits", 
  "school-based eating", "healthy eating in school", 
  "school meal participation", "in-school food intake", 
  "on-campus nutrition", "eating during school hours", 
  "classroom snack practices", "canteen-based eating", 
  "student food behavior in school", "regulated food intake", 
  "school food environment behavior", "food consumption at school"
)

student_learning

Academic and cognitive outcomes linked to nutrition and school health environments, including concentration, performance, and educational attainment.

student_learning = c(
  "learning outcomes", "academic performance", "school achievement", 
  "cognitive benefit", "cognitive development", "classroom concentration", 
  "student attention span", "education impact", 
  "student knowledge gain", "test scores", 
  "reading comprehension", "numeracy outcomes", 
  "academic success", "educational attainment", 
  "classroom engagement", "learning readiness", 
  "mental focus", "academic participation", 
  "nutrition and learning", "school-based academic improvement"
)

student_health

Physical health outcomes affected by school food environments, including growth, weight status, illness prevalence, and long-term well-being.

student_health = c(
  "child health", "student well-being", "healthy weight", 
  "BMI improvement", "nutritional status", 
  "diet-related health", "physical development", 
  "illness reduction", "health outcome", "childhood obesity", 
  "malnutrition", "nutrition-related disease", 
  "student physical health", "diet quality outcome", 
  "chronic disease prevention", "health behavior", 
  "public health outcome", "body mass index", 
  "school nutrition outcomes", "growth monitoring"
)
search_terms <- list(
  food_tech_training = food_tech_training,
  teaching_resources = teaching_resources,
  staff_skill = staff_skill,
  intervention_cost = intervention_cost,
  canteen_change = canteen_change,
  nutrition_lessons = nutrition_lessons,
  food_ads = food_ads,
  off_campus = off_campus,
  on_campus = on_campus,
  student_learning = student_learning,
  student_health = student_health
)

Check Text Hits

check_hits <- function(search_terms, text) {
  any(sapply(search_terms, function(t) grepl(t, text, ignore.case = TRUE)))
}

comparison_matrix <- data.frame(
  bib_data_policy = sapply(search_terms, check_hits, text = paste(bib_texts_policy, collapse = " ")),
  bib_data_lit = sapply(search_terms, check_hits, text = paste(bib_texts_literature, collapse = " ")),
  gov_review = sapply(search_terms, check_hits, text = paste(policy_text, collapse = " ")),
  lit_review = sapply(search_terms, check_hits, text = paste(literature_text, collapse = " "))
)

Summary Table full model

# Add numeric sum and evidence strength labels
comparison_matrix$support_score <- rowSums(comparison_matrix[ , c("bib_data_policy", "gov_review", "bib_data_lit", "lit_review")])

comparison_matrix$evidence_strength <- cut(
  comparison_matrix$support_score,
  breaks = c(-1, 0.1, 1.3, 3.1, 4.1),
  labels = c("", "Weak", "Moderate", "Strong"),
  right = TRUE
)


# Clean row names
rownames(comparison_matrix) <- gsub("_", " ", rownames(comparison_matrix))
rownames(comparison_matrix) <- stringr::str_to_title(rownames(comparison_matrix))

# Clean column names
colnames(comparison_matrix) <- gsub("_", " ", colnames(comparison_matrix))
colnames(comparison_matrix) <- stringr::str_to_title(colnames(comparison_matrix))


knitr::kable(
  comparison_matrix[, !(names(comparison_matrix) %in% "Support Score")],
  caption = "Model Component Evidence Presence"
)
Model Component Evidence Presence
Bib Data Policy Bib Data Lit Gov Review Lit Review Evidence Strength
Food Tech Training TRUE FALSE FALSE FALSE Weak
Teaching Resources FALSE TRUE FALSE FALSE Weak
Staff Skill FALSE TRUE FALSE FALSE Weak
Intervention Cost FALSE TRUE FALSE TRUE Moderate
Canteen Change FALSE TRUE FALSE TRUE Moderate
Nutrition Lessons TRUE TRUE FALSE TRUE Moderate
Food Ads FALSE TRUE FALSE FALSE Weak
Off Campus FALSE FALSE FALSE FALSE
On Campus FALSE FALSE FALSE FALSE
Student Learning TRUE TRUE FALSE TRUE Moderate
Student Health TRUE TRUE TRUE TRUE Strong

Count citations

source("functions/get_hits_by_bib.R")

literature_hits <- get_hits_by_bib(search_terms, bib_texts_literature)

policy_hits <- get_hits_by_bib(search_terms, bib_texts_policy)

summary_hits <- data.frame(
  Literature_Count = sapply(literature_hits, length),
  Policy_Count = sapply(policy_hits, length)
)

knitr::kable(summary_hits, caption = "Evidence Hits per Concept")
Evidence Hits per Concept
Literature_Count Policy_Count
food_tech_training 0 1
teaching_resources 1 0
staff_skill 1 0
intervention_cost 1 0
canteen_change 6 0
nutrition_lessons 11 4
food_ads 1 0
off_campus 0 0
on_campus 0 0
student_learning 2 1
student_health 10 5

Policy support for our model

In policy documents we found supporting evidence for the variables we expressed in our model:

  • 1 referencing food tech training.
    Minister (2019)

  • 0 referencing teaching resources.

  • 0 referencing staff skill.

  • 0 referencing intervention cost.

  • 0 referencing canteen change.

  • 4 referencing nutrition lessons.
    Education and Training (2022a), Minister (2021), Minister (2022), Minister (2016)

  • 0 referencing food ads.

  • 0 referencing off-campus food.

  • 0 referencing on-campus food.

  • 1 referencing student learning.
    Assembly (2019)

  • 5 referencing student health.
    Minister (2022), Education and Training (2022b), Minister (2016), Minister (2019), Health (2019)

Literature support for our model

In the literature we found supporting evidence for the variables we expressed in our model:

  • 0 referencing food tech training.

  • 1 referencing teaching resources.
    Wu et al. (2015)

  • 1 referencing staff skill.
    Ouda et al. (2019)

  • 1 referencing intervention cost.
    Parnham et al. (2022)

  • 6 referencing canteen change.
    Wu et al. (2015), Grigsby-Duffy et al. (2022), S. Pongutta et al. (2023), S. Pongutta et al. (2022), Castellari and Berning (2016), Martinelli et al. (2023)

  • 11 referencing nutrition lessons.
    Steyn et al. (2015), S. Pongutta et al. (2023), Taylor et al. (2011), S. Pongutta et al. (2022), Aroesty et al. (2018), Trung Le (2012), Hockamp et al. (2024), Liou et al. (2015), Walton, Signal, and Thomson (2013), Ohri-Vachaspati et al. (2016), Woo (2015)

  • 1 referencing food ads.
    Walton, Signal, and Thomson (2013)

  • 0 referencing off-campus food.

  • 0 referencing on-campus food.

  • 2 referencing student learning.
    Ouda et al. (2019), Aroesty et al. (2018)

  • 10 referencing student health.
    Wu et al. (2015), Parnham et al. (2022), S. Pongutta et al. (2023), Taylor et al. (2011), S. Pongutta et al. (2022), Aroesty et al. (2018), Trung Le (2012), Liou et al. (2015), Walton, Signal, and Thomson (2013), Martinelli et al. (2023)

Model update and Monte Carlo Simulation

We take these findings into account and also talk to experts to update the model.

Full conceptual Model We ran the full model using Monte Carlo simulation to estimate the likely outcomes of different school nutrition policy configurations.

The outputs include both health cost savings (e.g. avoided diagnoses and treatments) and economic return (net present value compared to the baseline). These are plotted below to visualize the decision space.

library(ggplot2)
library(decisionSupport)

source("functions/school_policy_function.R")
# Load inputs and run simulation
input_data <- estimate_read_csv("data/inputs_school_policy.csv")

numberOfModelRuns <- 10000

set.seed(84)
simulation_result <- mcSimulation(
  estimate = input_data,
  model_function = school_policy_function,
  numberOfModelRuns = numberOfModelRuns,
  functionSyntax = "plainNames"
)
## Warning: Variable: n_reduce_disease_treatment     distribution: posnorm
## Calculated value of 5%-quantile: 0.0176119007818566
##   Target value of 5%-quantile:     0.01
##   Calculated cumulative probability at value 0.01 : 0.0352941176470588
##   Target  cumulative probability at value 0.01 : 0.05
##   Mean scaled difference: 0.2941176
## Warning in paramtnormci_numeric(p = p, ci = ci, lowerTrunc = lowerTrunc, : Calculated value of 5%-quantile: 0.0176119007818566
##   Target value of 5%-quantile:     0.01
##   Calculated cumulative probability at value 0.01 : 0.0352941176470588
##   Target  cumulative probability at value 0.01 : 0.05
##   Mean scaled difference: 0.2941176
## Warning: Variable: training_costs_nutrition_annual    distribution: posnorm
## Calculated value of 5%-quantile: 0.263367695499241
##   Target value of 5%-quantile:     0.01
##   Calculated cumulative probability at value 0.01 : 0.00195944406470722
##   Target  cumulative probability at value 0.01 : 0.05
##   Mean scaled difference: 0.9608111
## Warning in paramtnormci_numeric(p = p, ci = ci, lowerTrunc = lowerTrunc, : Calculated value of 5%-quantile: 0.263367695499241
##   Target value of 5%-quantile:     0.01
##   Calculated cumulative probability at value 0.01 : 0.00195944406470722
##   Target  cumulative probability at value 0.01 : 0.05
##   Mean scaled difference: 0.9608111
## Warning: Variable: training_costs_physical_activity_annual    distribution: posnorm
## Calculated value of 5%-quantile: 0.17466915995397
##   Target value of 5%-quantile:     0.01
##   Calculated cumulative probability at value 0.01 : 0.0032051282051282
##   Target  cumulative probability at value 0.01 : 0.05
##   Mean scaled difference: 0.9358974
## Warning in paramtnormci_numeric(p = p, ci = ci, lowerTrunc = lowerTrunc, : Calculated value of 5%-quantile: 0.17466915995397
##   Target value of 5%-quantile:     0.01
##   Calculated cumulative probability at value 0.01 : 0.0032051282051282
##   Target  cumulative probability at value 0.01 : 0.05
##   Mean scaled difference: 0.9358974
## Warning: Variable: monitoring_canteen_cost    distribution: posnorm
## Calculated value of 5%-quantile: 0.088115775763901
##   Target value of 5%-quantile:     0.05
##   Calculated cumulative probability at value 0.05 : 0.0289473684210526
##   Target  cumulative probability at value 0.05 : 0.05
##   Mean scaled difference: 0.4210526
## Warning in paramtnormci_numeric(p = p, ci = ci, lowerTrunc = lowerTrunc, : Calculated value of 5%-quantile: 0.088115775763901
##   Target value of 5%-quantile:     0.05
##   Calculated cumulative probability at value 0.05 : 0.0289473684210526
##   Target  cumulative probability at value 0.05 : 0.05
##   Mean scaled difference: 0.4210526
# Scatter plot of health vs. economic return
ggplot(simulation_result$y, aes(x = decision_value, y = health_cost_savings)) +
  geom_point(alpha = 0.3) +
  labs(
    title = "Simulated Policy Outcomes",
    x = "Economic Return (NPV: Policy – No Policy) [million VND]",
    y = "Health Cost Savings [million VND]"
  ) +
  theme_minimal()

The model was run 10^{4} times to capture uncertainty across a wide range of possible scenarios.

We used a Monte Carlo simulation to estimate the economic and health outcomes of school meal policy interventions under uncertainty. The Monte Carlo simulation results show that school policy interventions can offer both cost savings and improved student health. While outcomes vary, a subset of efficient policy configurations emerged that balance return on investment, health improvements, and implementation cost.

These findings provide a transparent, evidence-based decision-support tool for policymakers to weigh trade-offs and identify promising school meal strategies under uncertainty.

Pareto analysis

We then performed a multi-objective Pareto analysis across three dimensions: economic return (NPV), health cost savings, and cost per student.

The resulting Pareto front reveals a clear trade-off curve. Policy configurations that maximize economic return do not necessarily maximize health benefits or minimize per-student costs. Conversely, policies with strong health outcomes can come at higher per-student costs or lower net present values.

These findings highlight the existence of efficient policy options that cannot be improved in one objective without sacrificing another. Decision-makers can use this front to choose policies based on priorities — e.g., maximizing health benefits under a fixed cost constraint, or seeking the best ROI with acceptable health impacts.

# Assume sim_result is the mcSimulation result
sim_data <- data.frame(simulation_result$x, simulation_result$y[1:2])  # Extract all output values

# Extended Pareto filter for 3D (non-dominated solutions across 3 objectives)
pareto_filter_3d <- function(df, obj1, obj2, obj3) {
  pareto <- rep(TRUE, nrow(df))
  for (i in 1:nrow(df)) {
    pareto[i] <- !any(
      df[[obj1]] > df[[obj1]][i] &
      df[[obj2]] >= df[[obj2]][i] &
      df[[obj3]] >= df[[obj3]][i] |
      df[[obj1]] >= df[[obj1]][i] &
      df[[obj2]] > df[[obj2]][i] &
      df[[obj3]] >= df[[obj3]][i] |
      df[[obj1]] >= df[[obj1]][i] &
      df[[obj2]] >= df[[obj2]][i] &
      df[[obj3]] > df[[obj3]][i]
    )
  }
  return(df[pareto, ])
}

# Prepare full data (assuming 'cost_per_student' is in simulation_result$y)
sim_data <- data.frame(simulation_result$x, simulation_result$y[, c("decision_value", "health_cost_savings", "cost_per_student")])

# Get Pareto front
pareto_3d <- pareto_filter_3d(sim_data, "decision_value", "health_cost_savings", "cost_per_student")

library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
plot_ly(sim_data, x = ~decision_value, y = ~health_cost_savings, z = ~cost_per_student,
        type = "scatter3d", mode = "markers", marker = list(size = 3, color = 'gray'),
        name = "All Simulations") %>%
  add_trace(data = pareto_3d,
            x = ~decision_value, y = ~health_cost_savings, z = ~cost_per_student,
            mode = "markers", type = "scatter3d",
            marker = list(color = "red", size = 4),
            name = "Pareto Front") %>%
  layout(
    title = "3D Pareto Frontier: Economic Return vs Health vs Cost/Student",
    scene = list(
      xaxis = list(title = "NPV (Economic Return)"),
      yaxis = list(title = "Health Cost Savings"),
      zaxis = list(title = "Cost per Student (VND)")
    )
  )

To better understand what drives the most efficient outcomes, we compared the input variables for simulations on the Pareto frontier (non-dominated in terms of return, health impact, and cost) to those across all simulations.

We compared the mean values of all input variables between the full simulation set and the Pareto-optimal subset. The variables with the greatest deviations help identify factors that characterize efficient policy configurations.

The column Mean_Pareto shows the average value of each input among simulations on the Pareto front. Mean_All shows the average across the full set of model runs. The difference is summarized in Change_Pareto_vs_All, where a positive value suggests that higher values of that input are associated with better performance.

# Combine flag to indicate Pareto-optimal points
sim_data$on_pareto <- apply(sim_data[, c("decision_value", "health_cost_savings", "cost_per_student")], 1, function(pt) {
  any(apply(pareto_3d[, c("decision_value", "health_cost_savings", "cost_per_student")], 1, function(pf) all(pt == pf)))
})

# Summarize means of input variables
input_vars <- setdiff(colnames(simulation_result$x), c("decision_value", "health_cost_savings", "cost_per_student"))

summary_table <- data.frame(
  Variable = input_vars,
  Mean_All = sapply(simulation_result$x[, input_vars], mean),
  Mean_Pareto = sapply(sim_data[sim_data$on_pareto, input_vars], mean)
)

# Calculate relative difference
summary_table$Change_Pareto_vs_All <- (summary_table$Mean_Pareto - summary_table$Mean_All) / summary_table$Mean_All * 100

# Only the Pareto-optimal subset (those not dominated on all three outcome axes: NPV, health, cost).

summary_table <- summary_table[order(-abs(summary_table$Change_Pareto_vs_All)), ]
knitr::kable(summary_table, digits = 2, caption = "Input Trends in Pareto-Optimal Simulations")
Input Trends in Pareto-Optimal Simulations
Variable Mean_All Mean_Pareto Change_Pareto_vs_All
training_costs_nutrition_annual training_costs_nutrition_annual 5.05 13.12 160.12
disease_diagnosis_cost disease_diagnosis_cost 0.50 1.06 111.83
n_reduce_disease_diagnosis n_reduce_disease_diagnosis 0.91 1.88 106.07
training_costs_physical_activity_annual training_costs_physical_activity_annual 3.34 4.95 48.00
costs_exceed_budget costs_exceed_budget 0.09 0.12 29.24
use_staff_training_nutrition use_staff_training_nutrition 0.50 0.64 27.02
unhealthy_schoolgate_food_risk unhealthy_schoolgate_food_risk 0.18 0.14 -22.33
physical_activity_effect physical_activity_effect 0.05 0.06 21.37
value_of_learning_per_student value_of_learning_per_student 5.24 4.16 -20.72
resistance_existing_staff_belief resistance_existing_staff_belief 0.09 0.11 19.98
impact_risk_unhealthy_schoolgate_food impact_risk_unhealthy_schoolgate_food 0.09 0.11 18.58
advertisement_exposure advertisement_exposure 0.05 0.06 18.24
baseline_disease_diagnosis baseline_disease_diagnosis 3.46 4.06 17.27
use_limit_unhealthy_canteen_food use_limit_unhealthy_canteen_food 0.50 0.42 -14.95
peer_influence_factor peer_influence_factor 0.05 0.06 14.67
staff_knowledge_nutrition staff_knowledge_nutrition 0.09 0.08 -11.96
unhealthy_canteen_foods unhealthy_canteen_foods 0.05 0.05 -11.46
resistance_child_preferences_attitude resistance_child_preferences_attitude 0.09 0.10 11.40
children_access_healthy_food children_access_healthy_food 0.09 0.08 -10.97
nutrition_status_bmi_high nutrition_status_bmi_high 0.09 0.08 -10.06
use_menu_change_rda use_menu_change_rda 0.50 0.55 9.55
canteen_selling_unhealthy_foods canteen_selling_unhealthy_foods 0.09 0.08 -9.55
parents_monitor_school_meal_practices parents_monitor_school_meal_practices 0.09 0.08 -9.11
physical_activity_program_effective physical_activity_program_effective 0.40 0.37 -7.36
disease_treatment_cost disease_treatment_cost 0.10 0.11 7.09
use_physical_activity use_physical_activity 0.51 0.54 6.53
training_costs_physical_activity_1st_year training_costs_physical_activity_1st_year 7.47 7.95 6.42
children_consume_healthy_food children_consume_healthy_food 0.09 0.09 -5.96
change_menu_costs_annual change_menu_costs_annual 8.48 8.98 5.93
monitoring_canteen_cost monitoring_canteen_cost 1.69 1.79 5.89
use_staff_training_foodsafety use_staff_training_foodsafety 0.50 0.53 5.30
baseline_disease_treatment baseline_disease_treatment 1.25 1.32 5.21
training_costs_foodsafety_annual training_costs_foodsafety_annual 3.45 3.63 5.18
CV_value CV_value 0.25 0.24 -5.08
discount_rate discount_rate 8.49 8.06 -5.02
food_access_and_consumption_bmi_improve food_access_and_consumption_bmi_improve 0.12 0.13 4.69
unhealthy_school_gate_foods unhealthy_school_gate_foods 0.09 0.09 4.55
unhealthy_food_exposure unhealthy_food_exposure 0.05 0.05 4.01
food_access_and_consumption_reduce_underweight food_access_and_consumption_reduce_underweight 0.05 0.05 -3.58
food_access_and_consumption_reduce_overweight food_access_and_consumption_reduce_overweight 0.05 0.05 3.54
resistance_existing_staff_practices resistance_existing_staff_practices 0.09 0.09 3.29
n_reduce_disease_treatment n_reduce_disease_treatment 0.34 0.33 -3.21
training_costs_foodsafety_1st_year training_costs_foodsafety_1st_year 7.49 7.73 3.21
practice_school_management_board practice_school_management_board 0.09 0.09 3.08
school_meet_mealrequirement school_meet_mealrequirement 0.09 0.09 2.97
staff_knowledge_food_safety staff_knowledge_food_safety 0.09 0.09 -2.48
nutrition_status_bmi_low nutrition_status_bmi_low 0.09 0.09 2.27
health_lessons_class health_lessons_class 0.09 0.09 -1.34
teaching_time teaching_time 0.09 0.09 -1.23
meal_nutrition_practices_staff meal_nutrition_practices_staff 0.09 0.09 -1.05
food_access_and_consumption_threshold food_access_and_consumption_threshold 0.65 0.66 1.02
food_safety_practices_staff food_safety_practices_staff 0.09 0.09 -0.81
n_student n_student 1493.66 1483.24 -0.70
training_costs_nutrition_1st_year training_costs_nutrition_1st_year 10.01 10.05 0.48
student_performance_improvement student_performance_improvement 0.05 0.05 0.29
number_of_years number_of_years 5.00 5.00 0.00

The most efficient simulations (on the Pareto front) were characterized by higher values for variables related to staff nutrition training, physical activity effectiveness, and improved meal quality — suggesting these interventions play a key role in maximizing return and health benefits.

References

Aroesty, T., S. Arshad, E. Chun, J. Gordon, N. Green, S. Hume, and G. Louis. 2018. “School Meals: Breaking the Cycle of Hunger and Poverty.” In Syst. Inf. Eng. Des. Symp., SIEDS, 100–105. Institute of Electrical; Electronics Engineers Inc. https://doi.org/10.1109/SIEDS.2018.8374717.
Assembly, National. 2019. “Law 43/2019/QH14: Education Law.” http://vanban.chinhphu.vn/default.aspx?pageid=27160&docid=197310.
Castellari, E., and J. P. Berning. 2016. “Can Providing a Morning Healthy Snack Help to Reduce Hunger During School Time? Experimental Evidence Fro an Elementary School in Connecticut.” Appetite 106: 70–77. https://doi.org/10.1016/j.appet.2016.02.157.
Education and Training, Mininstry of. 2022a. “Guidelines for Organizing School Meals in Combination with Promoting Physical Activity for Children and Pupils in Preschool and Primary Education Institutions.” https://moet.gov.vn/giaoducquocdan/giao-duc-the-chat/Pages/Default.aspx?ItemID=8038.
———. 2022b. “Decision No. 4202/QD-BGDĐT 2022 on Enhancing the Capacity of School Healthcare Staff.” https://thuvienphapluat.vn/van-ban/Lao-dong-Tien-luong/Quyet-dinh-4202-QD-BGDDT-2022-boi-duong-nang-cao-nang-luc-nhan-vien-y-te-truong-hoc-547039.aspx.
Grigsby-Duffy, L, R Brooks, T Boelsen-Robinson, MR Blake, K Backholer, C Palermo, and A Peeters. 2022. “The Impact of Primary School Nutrition Policy on the School Food Environment: A Systematic Review.” HEALTH PROMOTION INTERNATIONAL 37 (5). https://doi.org/10.1093/heapro/daac084.
Health, Ministry of. 2019. “Circular No. 31/2019/TT-BYT**: Requirements for Fresh Milk Products Used in the School Milk Program.” https://thuvienphapluat.vn/van-ban/The-thao-Y-te/Thong-tu-31-2019-TT-BYT-yeu-cau-san-pham-sua-tuoi-su-dung-trong-Chuong-trinh-Sua-hoc-duong-430376.aspx.
Hockamp, N., H. Schmitz, T. Lücke, M. Kersting, and K. Sinningen. 2024. “Free Breakfast in Primary Schools: Feasibility of a Municipal Offer in Germany.” Journal of Public Health (Germany). https://doi.org/10.1007/s10389-024-02279-y.
Liou, Y. M., Y.-L. Yang, T.-Y. Wang, and C.-M. Huang. 2015. “School Lunch, Policy, and Environment Are Determinants for Preventing Childhood Obesity: Evidence from a Two-Year Nationwide Prospective Study.” Obesity Research and Clinical Practice 9 (6): 563–72. https://doi.org/10.1016/j.orcp.2015.02.012.
Martinelli, S., T. Bui, F. Acciai, M. J. Yedidia, and P. Ohri-Vachaspati. 2023. “Improvements in School Food Offerings over Time: Variation by School Characteristics.” Nutrients 15 (8). https://doi.org/10.3390/nu15081868.
Minister, Prime. 2016. “Decision No. 1340/QD-TTg of the Prime Minister: Approval of the School Milk Program to Improve the Nutritional Status and Contribute to the Physical Development of Preschool and Primary School Children Until 2020.” http://vanban.chinhphu.vn/default.aspx?pageid=27160&docid=185450.
———. 2019. “Decision No. 41/QD-TTg of the Prime Minister: Approval of the Project "Ensuring Proper Nutrition and Enhancing Physical Activity for Children, Students, and University Students to Improve Health, Prevent Cancer, Cardiovascular Diseases, Diabetes, Chronic Obstructive Pulmonary Disease, and Asthma for the Period 2018 - 2025.".” http://chinhphu.vn/default.aspx?pageid=27160&docid=195881.
———. 2021. “Decision No. 1660/QD-TTg of the Prime Minister: Approval of the School Health Program for the Period 2021-2025.” http://vanban.chinhphu.vn/?pageid=27160&docid=204227&tagid=7&type=1.
———. 2022. “Decision No. 02/QD-TTg of the Prime Minister: Approval of the National Nutrition Strategy for the Period 2021 - 2030, with a Vision Towards 2045.” http://chinhphu.vn/?pageid=27160&docid=204983&tagid=6&type=1.
Ohri-Vachaspati, P., L. Turner, M. A. Adams, M. Bruening, and F. J. Chaloupka. 2016. “School Resources and Engagement in Technical Assistance Programs Is Associated with Higher Prevalence of Salad Bars in Elementary School Lunches in the United States.” Journal of the Academy of Nutrition and Dietetics 116 (3): 417–26. https://doi.org/10.1016/j.jand.2015.10.023.
Ouda, JB, P Mulaudzi, EK Najoli, R Wanyama, and T Runhare. 2019. “An Evaluation of Stakeholder Capacity in the Implementation of Millenium Village Primary School Meal Project.” EVALUATION AND PROGRAM PLANNING 72 (February): 179–87. https://doi.org/10.1016/j.evalprogplan.2018.10.003.
Parnham, JC, K Chang, C Millett, AA Laverty, S von Hinke, J Pearson-Stuttard, F de Vocht, M White, and EP Vamos. 2022. “The Impact of the Universal Infant Free School Meal Policy on Dietary Quality in English and Scottish Primary School Children: Evaluation of a Natural Experiment.” NUTRIENTS 14 (8). https://doi.org/10.3390/nu14081602.
Pongutta, S., O. Ajetunmobi, C. Davey, E. Ferguson, and L. Lin. 2022. “Impacts of School Nutrition Interventions on the Nutritional Status of School-Aged Children in Asia: A Systematic Review and Meta-Analysis.” Nutrients 14 (3). https://doi.org/10.3390/nu14030589.
Pongutta, S, E Ferguson, C Davey, V Tangcharoensathien, S Limwattananon, J Borghi, C Wong, and L Lin. 2023. “The Impact of a Complex School Nutrition Intervention on Double Burden of Malnutrition Among Thai Primary School Children: A 2-Year Quasi-Experiment.” PUBLIC HEALTH 224 (November): 51–57. https://doi.org/10.1016/j.puhe.2023.08.023.
Steyn, NP, A de Villiers, N Gwebushe, CE Draper, J Hill, M de Waal, L Dalais, Z Abrahams, C Lombard, and EV Lambert. 2015. “Did HealthKick, a Randomised Controlled Trial Primary School Nutrition Intervention Improve Dietary Quality of Children in Low-Income Settings in South Africa?” BMC PUBLIC HEALTH 15 (September). https://doi.org/10.1186/s12889-015-2282-4.
Taylor, J. P., D. MacLellan, J. M. Caiger, K. Hernandez, M. McKenna, B. Gray, and P. Veugelers. 2011. “Implementing Elementary School Nutrition Policy: Principals’ Perspectives.” Canadian Journal of Dietetic Practice and Research 72 (4): e205–11. https://doi.org/10.3148/72.4.2011.e205.
Trung Le, D. S. N. 2012. “School Meal Program in Ho Chi Minh City, Vietnam: Reality and Future Plan.” Asia Pacific Journal of Clinical Nutrition 21 (1): 139–43. https://www.scopus.com/inward/record.uri?eid=2-s2.0-84860346331&partnerID=40&md5=46c7821c4cc73314d9044809bca42406.
Walton, M., L. Signal, and G. Thomson. 2013. “Public Policy to Promote Healthy Nutrition in Schools: Views of Policymakers.” Health Education Journal 72 (3): 283–91. https://doi.org/10.1177/0017896912442950.
Woo, T. 2015. “The School Meal System and School-Based Nutrition Education in Korea.” Journal of Nutritional Science and Vitaminology 61: S23–24. https://doi.org/10.3177/jnsv.61.S23.
Wu, TF, LA Macaskill, MI Salvadori, and PDN Dworatzek. 2015. “Is the Balanced School Day Truly Balanced? A Review of the Impacts on Children, Families, and School Food Environments.” JOURNAL OF SCHOOL HEALTH 85 (6): 405–10. https://doi.org/10.1111/josh.12265.